import { CommonModule } from '@angular/common';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { RenderOptButtonComponent } from '@shared/ag-grid-ext/cell-renders/operation-button.component';
import { ApesModule } from '@shared/apes/apes.module';
import { EditorSelectComponent } from '@shared/ag-grid-ext/cell-editors/editor-select.component';
import { RenderButtonComponent } from '@shared/ag-grid-ext/cell-renders/render-button.component';
import { EditorCombogridComponent } from '@shared/ag-grid-ext/cell-editors/editor-combogrid.component';
import { EditorUomSelectComponent } from '@shared/ag-grid-ext/cell-editors/editor-uom-select.component';
import { EditorInputNumberComponent } from '@shared/ag-grid-ext/cell-editors/editor-input-number.component';
import { EditorDateComponent } from '@shared/ag-grid-ext/cell-editors/editor-date.component';
import { ApesRenderSelectComponent } from '@shared/ag-grid-ext/cell-renders/render-select.component';
import { EditorInputComponent } from '@shared/ag-grid-ext/cell-editors/editor-input.component';
import { EditorTextAreaComponent } from '@shared/ag-grid-ext/cell-editors/editor-textarea.component';
import { RenderDialogComponent } from '@shared/ag-grid-ext/cell-renders/render-dialog.component';
import { EditorChartSelectComponent } from '@shared/ag-grid-ext/cell-editors/editor-chart-select.component';
import { EditorCheckBoxComponent } from '@shared/ag-grid-ext/cell-editors/edit-checkbox.component';
import { ApesRenderTimeRangeComponent } from '@shared/ag-grid-ext/cell-renders/render-time-range.component';
import { ApesRenderTimeComponent } from '@shared/ag-grid-ext/cell-renders/render-time.component';
import { EditorTimeRangeComponent } from '@shared/ag-grid-ext/cell-editors/editor-time-range.component';
import { EditorTimeComponent } from '@shared/ag-grid-ext/cell-editors/editor-time.component';
import { HeaderDayComponent } from '@shared/ag-grid-ext/header-component/header-day.component';
import { EditorOptListComponent } from '@shared/ag-grid-ext/cell-editors/edit-opt-list.component';
import { RenderImageReviewComponent } from '@shared/ag-grid-ext/cell-renders/render-image-review.component';
import { RenderSwitchComponent } from '@shared/ag-grid-ext/cell-renders/render-switch.component';
import { RenderOperatingButtonComponent } from '@shared/ag-grid-ext/cell-renders/render-operating-button.component';
import { EditorDetailsComponent } from '@shared/ag-grid-ext/cell-editors/editor-details.component';
import { FormlyModule } from '@ngx-formly/core';
import { RenderSortComponent } from '@shared/ag-grid-ext/cell-renders/render-sort.component';
import { RenderUploadComponent } from '@shared/ag-grid-ext/cell-renders/render-upload.component';
import { ApesDrawerCustomGridComponent } from '@shared/ag-grid-ext/drawer-custom/drawer-custom-grid.component';
import { CustomTooltip } from '@shared/ag-grid-ext/cell-renders/custom-tooltip.component';
import { EditorCityPickerComponent } from '@shared/ag-grid-ext/cell-editors/editor-city-picker.component';
import { ApesRenderCityPicker } from '@shared/ag-grid-ext/cell-renders/render-city-picker.component';
import { ApesRenderDefaultComponent } from '@shared/ag-grid-ext/cell-renders/render-default.component';
import { EditorTagSelectComponent } from '@shared/ag-grid-ext/cell-editors/editor-tag-select.component';
import { ApesRenderPopoverComponent } from '@shared/ag-grid-ext/cell-renders/render-popover.component';
import { ApesRenderBadgeComponent } from '@shared/ag-grid-ext/cell-renders/render-badge.component';
import { ApesLoadingOverlayComponent } from '@shared/ag-grid-ext/loading-overlay/apes-loading-overlay.component';
import { ApesRenderLinkComponent } from '@shared/ag-grid-ext/cell-renders/render-link.component';
import { AgGridModule } from '@ag-grid-community/angular';
import { RenderTooltipComponent } from '@shared/ag-grid-ext/cell-renders/render-tooltip.component';
import { RenderDetailComponent } from '@shared/ag-grid-ext/cell-renders/render-detail.component';
import { CustomHeaderComponent } from '@shared/ag-grid-ext/header-component/custom-header.component';
import { ShowHiddenHeaderComponent } from '@shared/ag-grid-ext/header-component/showHidden-header.component';
import { RenderShowHiddenComponent } from '@shared/ag-grid-ext/cell-renders/render-showHidden.component';
import { RenderMultipleLinesComponent } from '@shared/ag-grid-ext/cell-renders/render-multipleLines.component';
import { RenderCustomDetailComponent } from '@shared/ag-grid-ext/cell-renders/render-custom-detail.component';
import { RenderTagComponent } from '@shared/ag-grid-ext/cell-renders/render-tag.component';
import { ApesNoRowsOverlayComponent } from '@shared/ag-grid-ext/noRows-overlay/apes-noRows-overlay.component';
import { ButtonHeaderComponent } from '@shared/ag-grid-ext/header-component/button-header.component';
import { ButtonFilterComponent } from '@shared/ag-grid-ext/filter-component/button-filter.component';
import { EditorInputGroupComponent } from '@shared/ag-grid-ext/cell-editors/editor-input-group.component';
import { EditorDateMonthComponent } from '@shared/ag-grid-ext/cell-editors/editor-dateMonth.component';
import { RenderXmlDetailComponent } from '@shared/ag-grid-ext/cell-renders/render-xml-detail.component';
import { ApesBoxModule } from '@shared/apes/box';

@NgModule({
  declarations: [
    EditorInputComponent, EditorTextAreaComponent,EditorInputGroupComponent,
    EditorSelectComponent, EditorChartSelectComponent,
    RenderButtonComponent, EditorCombogridComponent,
    EditorUomSelectComponent, EditorInputNumberComponent,
    RenderDialogComponent, EditorDateComponent,EditorDateMonthComponent,
    ApesRenderSelectComponent, EditorCheckBoxComponent,
    ApesRenderTimeRangeComponent, EditorTimeRangeComponent,
    EditorTimeComponent, RenderOptButtonComponent,
    HeaderDayComponent, EditorOptListComponent,
    RenderImageReviewComponent, RenderOperatingButtonComponent,
    RenderSwitchComponent, EditorDetailsComponent,
    RenderSortComponent, ApesRenderTimeComponent,
    RenderUploadComponent, ApesDrawerCustomGridComponent,
    CustomTooltip, EditorCityPickerComponent,
    ApesRenderCityPicker, ApesRenderDefaultComponent,
    EditorTagSelectComponent, ApesRenderPopoverComponent,
    ApesRenderBadgeComponent, ApesLoadingOverlayComponent,ApesNoRowsOverlayComponent,
    ApesRenderLinkComponent, RenderTooltipComponent,
    RenderDetailComponent, RenderCustomDetailComponent,RenderXmlDetailComponent,CustomHeaderComponent,
    ShowHiddenHeaderComponent,RenderShowHiddenComponent,
    RenderMultipleLinesComponent,RenderTagComponent,
    ButtonHeaderComponent,ButtonFilterComponent
  ],
  exports: [
    AgGridModule, EditorInputComponent,EditorInputGroupComponent,
    EditorTextAreaComponent, EditorSelectComponent,
    EditorChartSelectComponent, EditorCombogridComponent,
    EditorUomSelectComponent, RenderButtonComponent,
    RenderDialogComponent, EditorInputNumberComponent,
    EditorDateComponent, ApesRenderSelectComponent,EditorDateMonthComponent,
    EditorCheckBoxComponent, ApesRenderTimeRangeComponent,
    EditorTimeRangeComponent, EditorTimeComponent,
    RenderOptButtonComponent, HeaderDayComponent,
    EditorOptListComponent, RenderImageReviewComponent,
    RenderOperatingButtonComponent, RenderSwitchComponent,
    EditorDetailsComponent, RenderSortComponent, ApesRenderTimeComponent,
    RenderUploadComponent, ApesDrawerCustomGridComponent,
    CustomTooltip, EditorCityPickerComponent,
    ApesRenderCityPicker, ApesRenderDefaultComponent,
    EditorTagSelectComponent, ApesRenderPopoverComponent,
    ApesRenderBadgeComponent, ApesLoadingOverlayComponent,ApesNoRowsOverlayComponent,
    ApesRenderLinkComponent, RenderTooltipComponent,
    RenderDetailComponent, RenderCustomDetailComponent,RenderXmlDetailComponent,CustomHeaderComponent,
    ShowHiddenHeaderComponent,RenderShowHiddenComponent,
    RenderMultipleLinesComponent,RenderTagComponent,
    ButtonHeaderComponent,ButtonFilterComponent
  ],
  imports: [
    CommonModule,
    FormsModule,
    AgGridModule.withComponents([
      EditorInputComponent, EditorTextAreaComponent,EditorInputGroupComponent,
      EditorSelectComponent, EditorChartSelectComponent,
      RenderButtonComponent, EditorUomSelectComponent,
      EditorCombogridComponent, RenderDialogComponent,
      EditorInputNumberComponent, EditorDateComponent,EditorDateMonthComponent,
      ApesRenderSelectComponent, EditorCheckBoxComponent,
      ApesRenderTimeRangeComponent, EditorTimeRangeComponent,
      EditorTimeComponent, RenderOptButtonComponent,
      HeaderDayComponent, EditorOptListComponent,
      RenderImageReviewComponent, RenderOperatingButtonComponent,
      RenderSwitchComponent, EditorDetailsComponent,
      RenderSortComponent, ApesRenderTimeComponent,
      RenderUploadComponent, CustomTooltip, EditorCityPickerComponent,
      ApesRenderCityPicker, ApesRenderDefaultComponent,
      EditorTagSelectComponent, ApesRenderPopoverComponent,
      ApesRenderBadgeComponent, ApesLoadingOverlayComponent,ApesNoRowsOverlayComponent,
      ApesRenderLinkComponent, RenderTooltipComponent,
      RenderDetailComponent,RenderCustomDetailComponent,RenderXmlDetailComponent,CustomHeaderComponent,
      ShowHiddenHeaderComponent,RenderShowHiddenComponent,
      RenderMultipleLinesComponent,RenderTagComponent,
      ButtonHeaderComponent,ButtonFilterComponent
    ]),
    FormlyModule,
    ApesBoxModule,
    ApesModule],
  entryComponents: [ApesDrawerCustomGridComponent],
})
export class AgGridExtModule {
}
